iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0
自我挑戰組

用Python學習網路爬蟲30天系列 第 17

[Day17] 動態網頁擷取4_JavaScript動態網頁擷取

  • 分享至 

  • xImage
  •  

JavaScript動態網頁擷取

Selenium可以幫助我們從JavaScript的動態網頁中取得所需要的資料。可以使用find_element(s)(By.XX, " ")函數定位出目標資料的位置,再來取出文字內容即完成動態網頁擷取。

實作練習

  1. 在動態網頁上擷取程式類課程的名稱

    (1) 找出目標標籤位置
    https://ithelp.ithome.com.tw/upload/images/20221002/20152180ePhW4mE8Mz.png


    (2) 使用find_elements(By.CSS_SELECTOR, " ")函數定位標籤位置並擷取文字

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.chrome.service import Service
    
    s  = Service("chromedriver.exe")
    driver = webdriver.Chrome(service=s)
    driver.implicitly_wait(10)
    
    #取得動態網頁網址
    driver.get("https://hahow.in/group/programming?page=1")
    
    #CSS選擇器找到目標標籤並擷取文字
        course = driver.find_elements(By.CSS_SELECTOR, "h4")               
        for item in course:
            print(item.text)  
    
    driver.quit()
    


    執行結果:
    https://ithelp.ithome.com.tw/upload/images/20221002/20152180fd2EkFInsg.png

  2. 擷取下一頁程式類課程的名稱
    第一個for迴圈取得網頁連結,第二個for迴圈擷取課程名稱

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.chrome.service import Service
    
    s  = Service("chromedriver.exe")
    driver = webdriver.Chrome(service=s)
    driver.implicitly_wait(10)
    
    #取得動態網頁網址
    for page in range(1, 6):
        driver.get("https://hahow.in/group/programming?page="+str(page))
    
    #CSS選擇器找到目標標籤並擷取文字
        course = driver.find_elements(By.CSS_SELECTOR, "h4") 
        print("----------第"+str(page)+"頁----------")          
        for item in course:
            print(item.text)  
    
    driver.quit()
    

上一篇
[Day16] 動態網頁擷取3_與HTML表單進行互動
下一篇
[Day18] Selenium總複習
系列文
用Python學習網路爬蟲30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言